//
// Created by PC on 2023/2/17.
// 等差素数数列
// https://mp.weixin.qq.com/s/4Lp19qu1V96lnCeVYslkbQ
// 2,3,5,7,11,13,..是素数数列。
//7,37,67,97,127.157.这样完全由素数组成的等差数列称为等差素数列。
//上述数列的公差为30，长度为6。
//2004年。格林与陶哲轩合作证明了存在任意长度的等差素数列。这是数论领域的一项惊人成果!
//有了这理论作为基础，请你借助手中的计算机满怀信心地搜索：长度为10的等差素数列，其公差最小值是多少?
//注意:需要提交一个整数，不要填写任何多余内容和说明文字。
//

#include <iostream>
#include "myNumber.h"
#include "../arrUtil.h"

using namespace std;

int main()
{
    int n = 6;
    int prime_list[n];
    int step;
    int prime = 2;
    int index = 0;
    int end = false;
    while (!end)
    {
        for (int i = 0; i < n; ++i)
        {
            prime_list[i] = prime;
            // 找下一个质数
            do
            {
                ++prime;
            } while (!isPrimeNumber(prime));
        }
        printArr(prime_list, n);
        int j = 1;
        for (; j < n; ++j)
        {
            step = prime_list[1] - prime_list[0];
            if (prime_list[j + 1] - prime_list[j] != step)
            // 如果步长不一致, 说明不是等差数列, 保留第二个素数,进入下一个大循环
            {
                prime = prime_list[1];
                break;
            }
//            else
//                end = true;
        }
        if (j==n-1)
            end =true;

        printf("step = %d\n",step);
    }
    return 0;
}
